"""
Agent服务初始化模块
集成所有工具，创建可用的Assistant实例
"""

from qwen_agent.agents import Assistant
from tools.protein_search import ProteinSearchTool
from tools.blast_search import BlastSequenceSearchTool
from tools.foldseek_search import FoldseekStructureSearchTool
import config


def init_agent_service(system_prompt: str = None):
    """
    初始化Agent服务
    
    Args:
        system_prompt: 自定义system prompt，如果为None则使用config中的默认值
    
    Returns:
        Assistant: 配置好的Assistant实例
    """
    # LLM配置：使用SiliconFlow API
    llm_cfg = {
        'model': config.SILICONFLOW_CONFIG['model'],
        'model_server': config.SILICONFLOW_CONFIG['base_url'],
        'api_key': config.SILICONFLOW_CONFIG['api_key'],
    }
    
    # 工具列表
    tools = [
        ProteinSearchTool(),
        BlastSequenceSearchTool(),
        FoldseekStructureSearchTool(),
    ]
    
    # 使用自定义system prompt或默认值
    system_message = system_prompt if system_prompt else config.SYSTEM_PROMPT
    
    # 创建Assistant
    # qwen-agent的Assistant支持system_message参数
    bot = Assistant(
        llm=llm_cfg,
        function_list=tools,
        name='arcCHAT',
        description="arcCHAT是一个专业的生物信息学智能助手，可以帮助您搜索蛋白质、进行序列比对和结构比对。",
        system_message=system_message  # 添加system prompt
    )
    
    return bot

